package com.yzh.springboot_rbac.annotation;

import java.lang.annotation.*;

/**
 * @Description: IP限流注解*
 * 这个是注解的定义：（刚好学习下注解定义的几个要素）
 *  - @Target(ElementType.METHOD)目标注解：标注注解使用在哪里？此处在方法上
 *  - @Retention(RetentionPolicy.RUNTIME)保留注解：标注注解生效时间：在运行时生效/
 *  - @Documented 文档注解：示自定义注解 @IpLimiter 的信息应包含在生成的 Javadoc 文档中
 *
 *  注解体：和抽象方法声明格式一样。
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface IpLimiter {

    /**
     * 限流的具体ip地址
     */
    String ipAdress() ;
    /**
     * 单位时间限制通过请求数，默认是10个
     */
    long limit() default 10;

    /**
     * 单位时间，单位秒
     */
    long time() default 1;

    /**
     * 达到限流提示语
     */
    String message();
}
